package org.example.Manager;

import org.example.model.ProductOrderDO;

import java.util.Map;

/**
 * @description:
 * @author: 谢超
 * @date: 2024/4/22 14:32
 */
public interface ProductOrderManager {
    /**
     * 新增订单
     * @param productOrderDO
     * @return
     */
    int add(ProductOrderDO productOrderDO);

    /**
     * 通过订单号和账号进行查询
     * @param outTradeNo
     * @param accountNo
     * @return
     */
    ProductOrderDO findByOutTradeNoAndAccountNo(String outTradeNo, Long accountNo);

    /**
     * 更新订单状态
     * @param outTradeNo
     * @param accountNo
     * @param newState
     * @param oldState
     * @return
     */
    int updateOrderPayState(String outTradeNo, Long accountNo, String newState, String oldState);

    /**
     * 基于状态查看订单列表，支持分页
     * @param page
     * @param size
     * @param accountNo
     * @param state
     * @return
     */
    Map<String, Object> page(int page, int size, Long accountNo, String state);

    /**
     * 删除订单
     * @param productOrderId
     * @param accountNo
     * @return
     */
    int del(Long productOrderId, Long accountNo);
}
